package response

import (
	"net/http"

	"gitee.com/liuxiaowei123/vblog-3/exception"
	"github.com/gin-gonic/gin"
)

// 此文件用来封装api接口层返回的数据，把封装后的数据返回给客户端

// 原数据返回格式：c.JSON(http.StatusBadRequest, err.Error())

// 正常时返回的数据格式
func Success(c *gin.Context, data any) {
	c.JSON(http.StatusOK, data)
}

// 异常时返回的数据格式
func Failed(c *gin.Context, err error) {
	defer c.Abort()
	var e *exception.Exception
	// 断言异常类型是否为自定义异常
	if v, ok := err.(*exception.Exception); ok {
		e = v
	} else {
		e = exception.NewException(http.StatusInternalServerError, err.Error())
		e.HttpCode = http.StatusInternalServerError
	}
	c.JSON(e.HttpCode, e)
}
